const fs = require('fs');
const path = require('path');
const parser = require('@babel/parser');

// 读取 JavaScript 文件
function readFile(filePath) {
  return fs.readFileSync(path.resolve(__dirname, filePath), 'utf8');
}

// 解析 JavaScript 文件为 AST
function parseFileToAst(code, options = {}) {
  return parser.parse(code, {
    sourceType: 'module', // 假设源代码是 ES6 模块
    ...options,           // 其他解析选项
  });
}

// 主函数
async function main() {
  try {
    // 替换为你的 JS 文件路径
    const filePath = './index.js';
    const code = readFile(filePath);

    // 可选：定义额外的解析选项，例如支持 JSX 或 TypeScript
    const ast = parseFileToAst(code, {
      plugins: ['jsx'], // 如果需要解析 JSX
    });

    // 输出 AST 到控制台（为了简化输出，这里只打印一部分）
    console.log(JSON.stringify(ast.program.body[0], null, 2));
  } catch (error) {
    console.error('解析文件时出错:', error);
  }
}

main();